package entity

import dom "a-common/domain"

// SysRole 系统角色表
type SysRole struct {
	RoleId         int64  `xorm:"pk autoincr notnull"`     // 角色ID
	Pid            int64  `xorm:"notnull"`                 // 上级角色
	Name           string `xorm:"varchar(30) notnull"`     // 名称
	Rules          string `xorm:"text notnull"`            // 所具有的菜单权限
	Status         string `xorm:"varchar(1) default('1')"` // 角色状态（0=禁用 1=启用）
	RoleSort       int    `xorm:"notnull"`                 // 显示顺序
	dom.BaseStruct `xorm:"extends"`
}

// SysRoleVo 映射
type SysRoleVo struct {
	RoleId   int64  `json:"roleId,omitempty" xorm:"pk"`
	Pid      int64  `json:"roleKey,omitempty"`
	Name     string `json:"name,omitempty"`
	Rules    string `json:"rules,omitempty"`
	Status   string `json:"status,omitempty"`
	RoleSort string `json:"roleSort"`
}
type SysRolePageVo struct {
	SysRoleVo    `xorm:"extends"`
	dom.BaseJson `xorm:"extends"`
}

// SysRoleDto 传输
type SysRoleDto struct {
	SysRolePageVo
	Params dom.ParamTime `json:"params" `
	dom.BaseJson
	dom.PageDto
}

func (m *SysRoleDto) Validator() error {
	if m.PageNum < 1 {
		m.PageNum = 1
	}
	if m.PageSize < 1 {
		m.PageSize = 10
	}
	return nil
}

// SysRoleExportVo 导出
type SysRoleExportVo struct {
	RoleId    int64  `excel:"name:角色ID;" xorm:"pk"`
	RoleName  string `excel:"name:角色名称;"`
	RoleKey   string `excel:"name:角色权限;"`
	RoleSort  int    `excel:"name:角色排序;"`
	DataScope string `excel:"name:数据范围;"`
	Status    string `excel:"name:角色状态;"`
}
